package vista;

import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JToolBar;
import javax.swing.ButtonGroup;
import javax.swing.JRadioButton;
import javax.swing.SwingConstants;
import javax.swing.ImageIcon;
import java.io.File;
import java.awt.event.ActionListener;
import java.awt.event.FocusListener;
import java.awt.event.KeyListener;
import java.awt.event.MouseListener;
import java.awt.event.WindowListener;
import java.awt.event.ItemListener;
import javax.swing.event.DocumentListener;

public class VentanaCliente extends JFrame
{
    private JButton btnGuardar,btnModificar,btnEliminar,btnCancelar,btnSalir,
                    btnSiguiente,btnAtras,btnPrimero,btnUltimo;
    private JTextField txtCodCliente,txtNombre,txtTelefono;
    private JTextArea txtDireccion;
    private JRadioButton rbVenezolano;
    private JRadioButton rbExtranjero;
    private JRadioButton rbJuridico;
    
    public VentanaCliente()
    {     
    	super("Clientes");
    	ImageIcon imgCliente= new ImageIcon(getClass().getResource("imagenes" + File.separator + "clientes.png"));
    	ImageIcon imgSiguiente= new ImageIcon(getClass().getResource("imagenes" + File.separator + "siguiente.gif"));
    	ImageIcon imgAtras= new ImageIcon(getClass().getResource("imagenes" + File.separator + "atras.gif"));
    	ImageIcon imgPrimero= new ImageIcon(getClass().getResource("imagenes" + File.separator + "primero.gif"));
    	ImageIcon imgUltimo= new ImageIcon(getClass().getResource("imagenes" + File.separator + "ultimo.gif"));
    	
        ImageIcon imgGuardar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "guardar.png"));
        ImageIcon imgModificar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "modificar.png"));
        ImageIcon imgEliminar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "eliminar.png"));
        ImageIcon imgCancelar= new ImageIcon(getClass().getResource("imagenes" + File.separator + "cancelar.png"));
        ImageIcon imgSalir= new ImageIcon(getClass().getResource("imagenes" + File.separator + "salir.png"));
        
        
        PanelFondo panelFondo= new PanelFondo();
        PanelFrente panelFrente= new PanelFrente();
        
        JLabel lblTitulo= new JLabel("CLIENTES");
        JLabel lblCodCliente= new JLabel("Cedula o Rif:");
        JLabel lblNombre= new JLabel("Nombre:");
        JLabel lblDireccion= new JLabel("Direccion:");
        JLabel lblTelefono= new JLabel("Telefono:");
        
        
         JLabel lblLogo= new JLabel(imgCliente);
        
        JToolBar barraHerramientas= new JToolBar();
       
        
        /*Botones de Navegacion*/
        JToolBar barraNavegacion= new JToolBar();
        
        barraNavegacion.setFloatable(false);
        barraNavegacion.setOpaque(false);
        barraNavegacion.setBorderPainted(false);
        
        btnSiguiente= new JButton(imgSiguiente);
        btnAtras= new JButton(imgAtras);
        btnPrimero= new JButton(imgPrimero);
        btnUltimo= new JButton(imgUltimo);
        
        btnSiguiente.setActionCommand("Siguiente");
        btnAtras.setActionCommand("Atras");
        btnPrimero.setActionCommand("Primero");
        btnUltimo.setActionCommand("Ultimo");
        
        btnPrimero.setToolTipText("Primero");
        btnAtras.setToolTipText("Atras");
        btnSiguiente.setToolTipText("Siguiente");
        btnUltimo.setToolTipText("Ultimo");
        
        barraNavegacion.add(btnPrimero);
        barraNavegacion.add(btnAtras);
        barraNavegacion.add(btnSiguiente);
        barraNavegacion.add(btnUltimo);
        /********Fin de botones de Navegacion*******/
       
        btnGuardar= new JButton("GUARDAR",imgGuardar);
        btnModificar= new JButton("MODIFICAR",imgModificar);
        btnEliminar= new JButton("ELIMINAR",imgEliminar);
        btnCancelar= new JButton("CANCELAR",imgCancelar);
        btnSalir= new JButton("SALIR",imgSalir);
        
        
        txtCodCliente= new JTextField();
        txtNombre= new JTextField();
        txtDireccion= new JTextArea();
        txtTelefono= new JTextField();
        
        txtCodCliente.setName("txtCodCliente");
        txtNombre.setName("txtNombre");
        txtDireccion.setName("txtDireccion");
        txtTelefono.setName("txtTelefono");
        
        ButtonGroup bgNacionalidad= new ButtonGroup();

        rbVenezolano= new JRadioButton("V");
        rbExtranjero= new JRadioButton("E");
        rbJuridico = new JRadioButton("J");

        rbVenezolano.setOpaque(false);
        rbExtranjero.setOpaque(false);
        rbJuridico.setOpaque(false);
        
        rbVenezolano.setSelected(true);
        
        bgNacionalidad.add(rbVenezolano);
        bgNacionalidad.add(rbExtranjero);
        bgNacionalidad.add(rbJuridico);

        barraHerramientas.setFloatable(false);
        barraHerramientas.setOpaque(false);
        barraHerramientas.setBorderPainted(false);
        


        btnGuardar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnGuardar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnGuardar.setOpaque(false);
        btnGuardar.setBorderPainted(false);

        btnModificar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnModificar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnModificar.setOpaque(false);
        btnModificar.setBorderPainted(false);

        btnEliminar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnEliminar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnEliminar.setOpaque(false);
        btnEliminar.setBorderPainted(false);

        btnCancelar.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnCancelar.setHorizontalTextPosition(SwingConstants.CENTER);
        btnCancelar.setOpaque(false);
        btnCancelar.setBorderPainted(false);

        btnSalir.setVerticalTextPosition(SwingConstants.BOTTOM);
        btnSalir.setHorizontalTextPosition(SwingConstants.CENTER);
        btnSalir.setOpaque(false);
        btnSalir.setBorderPainted(false);
        
        barraHerramientas.add(btnGuardar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnModificar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnEliminar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnCancelar);
        barraHerramientas.addSeparator();
        barraHerramientas.addSeparator();
        barraHerramientas.add(btnSalir);
        
        lblTitulo.setFont(new Font(Font.SERIF,Font.BOLD,20));

        panelFrente.setLayout(null);

        panelFrente.add(lblLogo);
        lblLogo.setBounds(10, 30, 230, 200);

        
        panelFrente.add(lblCodCliente);
        lblCodCliente.setBounds(250, 35, 100, 20);
        lblCodCliente.setFont(new Font(Font.DIALOG,Font.BOLD,15));

        panelFrente.add(lblNombre);
        lblNombre.setBounds(250, 80, 80, 20);
        lblNombre.setFont(new Font(Font.DIALOG,Font.BOLD,15));

        panelFrente.add(lblDireccion);
        lblDireccion.setBounds(250, 140, 100, 20);
        lblDireccion.setFont(new Font(Font.DIALOG,Font.BOLD,15));
          
        panelFrente.add(lblTelefono);
        lblTelefono.setBounds(250, 200, 200, 20);
        lblTelefono.setFont(new Font(Font.DIALOG,Font.BOLD,15));
                
        panelFrente.add(rbJuridico);
        rbJuridico.setBounds(360,35, 40, 20);

        panelFrente.add(rbVenezolano);
        rbVenezolano.setBounds(395,35, 40, 20);

        panelFrente.add(rbExtranjero);
        rbExtranjero.setBounds(430,35, 40, 20);
        
        
        panelFrente.add(txtCodCliente);
        txtCodCliente.setBounds(465, 31, 139, 25);

        panelFrente.add(txtNombre);
        txtNombre.setBounds(365, 77, 240, 25);

        txtDireccion.setLineWrap(true);
        txtDireccion.setWrapStyleWord(true);
        JScrollPane scroll= new JScrollPane(txtDireccion,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        panelFrente.add(scroll);
        scroll.setBounds(365, 125, 240, 50);
        
        panelFrente.add(txtTelefono);
        txtTelefono.setBounds(365,195,240,25);

        
        panelFrente.add(barraNavegacion);
        barraNavegacion.setBounds(210, 250, 200, 30);
        
        panelFrente.add(barraHerramientas);
        barraHerramientas.setBounds(78, 300, 500, 90);

        panelFondo.setLayout(null);

        panelFondo.add(lblTitulo);
        lblTitulo.setBounds(290, 10,180, 30);

        panelFondo.add(panelFrente);

        add(panelFondo);

        
        
        setSize(720,540);
        panelFrente.setBounds(40, 50, 625, 410);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
   
    }
    
    public void actualizarInfo(String codigo,String nombre,
    		                   String direccion,String telefono)
    {
    	if (codigo.toUpperCase().startsWith("J"))
    		rbJuridico.setSelected(true);
    	else if (codigo.toUpperCase().startsWith("V"))
    		rbVenezolano.setSelected(true);
    	else
    		rbExtranjero.setSelected(true);
    	
    	txtCodCliente.setText(codigo.substring(2));
    	txtNombre.setText(nombre);
    	txtDireccion.setText(direccion);
    	txtTelefono.setText(telefono);
    	
    	
    		
    }
    
    public void addListener(ActionListener escuchador)
    {
    	btnGuardar.addActionListener(escuchador);
        btnEliminar.addActionListener(escuchador);
        btnModificar.addActionListener(escuchador);
        btnCancelar.addActionListener(escuchador);
        btnSalir.addActionListener(escuchador);
     
        btnSiguiente.addActionListener(escuchador);
        btnAtras.addActionListener(escuchador);
        btnPrimero.addActionListener(escuchador);
        btnUltimo.addActionListener(escuchador);
    }
    
    public void addListener(KeyListener escuchador)
    {
         txtCodCliente.addKeyListener(escuchador);
         txtNombre.addKeyListener(escuchador);
         txtDireccion.addKeyListener(escuchador);
         txtTelefono.addKeyListener(escuchador);
    }
    
    
    
    public void addListener(WindowListener escuchador)
    {
         this.addWindowListener(escuchador);
    }
    
    public void addListener(FocusListener escuchador)
    {
    	txtCodCliente.addFocusListener(escuchador);
    	
    	
    }
    
    public void addListener(MouseListener escuchador)
    {
    	 this.rbVenezolano.addMouseListener(escuchador);
         this.rbExtranjero.addMouseListener(escuchador);
         this.rbJuridico.addMouseListener(escuchador);
    }
    
    public void addListener(ItemListener escuchador)
    {
    	 this.rbVenezolano.addItemListener(escuchador);
         this.rbExtranjero.addItemListener(escuchador);
         this.rbJuridico.addItemListener(escuchador);
    }
    
    
    
    public void habilitarBotonActualizar(String boton)
    {
    	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
    	   btnGuardar.setEnabled(true);
    	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
    	   btnEliminar.setEnabled(true);
    	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
    	   btnModificar.setEnabled(true);
    	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
     	   btnCancelar.setEnabled(true);
    	
    }
    
    public void deshabilitarBotonActualizar(String boton)
    {
    	if (btnGuardar.getActionCommand().equalsIgnoreCase(boton))
    	   btnGuardar.setEnabled(false);
    	else if (btnEliminar.getActionCommand().equalsIgnoreCase(boton))
    	   btnEliminar.setEnabled(false);
    	else if (btnModificar.getActionCommand().equalsIgnoreCase(boton))
    	   btnModificar.setEnabled(false);
    	else if (btnCancelar.getActionCommand().equalsIgnoreCase(boton))
     	   btnCancelar.setEnabled(false);
    	
    }
    
    public void habilitarNavegacion()
    {
    	btnSiguiente.setEnabled(true);
    	btnAtras.setEnabled(true);
    	btnPrimero.setEnabled(true);
    	btnUltimo.setEnabled(true);
    }
    
    public void deshabilitarNavegacion()
    {
    	btnSiguiente.setEnabled(false);
    	btnAtras.setEnabled(false);
    	btnPrimero.setEnabled(false);
    	btnUltimo.setEnabled(false);
    }
    
    public void limpiarTextos()
    {
    	txtNombre.setText("");
    	txtDireccion.setText("");
    	txtTelefono.setText("");
    }
      
    public String getCodCliente()
    {
    	String texto= "";
    	
    	if (rbJuridico.isSelected())
    		texto="J-";
    	else if (rbVenezolano.isSelected())
    		texto = "V-";
     	else if (rbExtranjero.isSelected())
    		texto = "E-";
    	
    	texto += txtCodCliente.getText();
    	
    	return texto;
    }
    
    public String getNombre()
    {
    	return txtNombre.getText();
    }
    
    public String getDireccion()
    {
    	return txtDireccion.getText();
    }
    
    public String getTelefono()
    {
    	return txtTelefono.getText();
    }
    
    public boolean isJuridico()
    {
    	return rbJuridico.isSelected();
    }
    
    
}

